package com.gqj.meter.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.gqj.common.annotation.Excel;
import com.gqj.common.core.domain.BaseEntity;

import javax.validation.constraints.NotBlank;

/**
 * 出入库任务对象 md_in_task
 *
 * @author lxq
 * @date lxq-02-10
 */
public class MdInTask extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long inTaskId;

    /**
     * 入库编号
     */
    @Excel(name = "入库编号")
    @ApiModelProperty("入库编号")
    private String inTaskNo;

    /**
     * 入库原因04：配送入库
     * 10：配送出库
     * 11：新装/更换出库
     * 12：预领出库
     * 05：预领退回入库
     * 06：领出未装入库
     */
    @ApiModelProperty("入库原因")
    private String inWhSortCode;

    /**
     * 操作人
     */
    @Excel(name = "操作人")
    private Long operationUserId;

    /**
     * 操作人名称
     */
    @Excel(name = "操作人名称")
    @ApiModelProperty("操作人名称")
    private String nickName;

    /**
     * 操作时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("操作时间")
    private Date operationDate;

    /**
     * 任务状态
     */
    @Excel(name = "任务状态")
    @ApiModelProperty("任务状态,0：未执行，1：执行中，2：执行完毕")
    private String statusCode;

    /**
     * 任务时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "任务时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("任务时间")
    private Date taskDate;

    /**
     * 资产大类：
     * 01：电能表
     * 02：互感器
     * 03：采集终端
     * 04：采集器
     * 05：通讯模块
     * 10：其他
     */
    @Excel(name = "资产大类：01：电能表02：互感器03：采集终端")
    @ApiModelProperty("资产大类,01：电能表，02：互感器，04：采集器")
    private String assetsCategory;

    /**
     * 发送人
     */
    private String sender;

    /**
     * 接收人
     */
    private String receiver;

    /**
     * 原部门
     */
    private String originalDept;

    /**
     * 目标部门
     */
    private String targetDept;

    /**
     * 入库单主键集合
     */
    @ApiModelProperty("入库单主键集合")
    private Long[] inTaskIds;

    /**
     * 入库单详情集合
     */
    @ApiModelProperty("入库单详情集合")
    private List<MdInTaskDetails> mdInTaskDetailsList;

    /**
     * 单据类型1-库房系统2-计量系统
     */
    @ApiModelProperty("单据类型1-库房系统2-计量系统")
    private String taskOrderType;

    @ApiModelProperty("入库数量")
    private Integer inNumber;
    /*
     * 操作标识
     * */
    private Long operId;

    /**
     * 申请单号
     */
    @ApiModelProperty("申请单号")
    private Long relaId;

    private Integer pageNum = 1;
    private Integer pageSize = 10;

    private String[] rfidNos;

    public String[] getRfidNos() {
        return rfidNos;
    }

    public void setRfidNos(String[] rfidNos) {
        this.rfidNos = rfidNos;
    }

    public Integer getPageNum() {
        return pageNum;
    }

    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public Long getRelaId() {
        return relaId;
    }

    public void setRelaId(Long relaId) {
        this.relaId = relaId;
    }

    public Integer getInNumber() {
        return inNumber;
    }

    public void setInNumber(Integer inNumber) {
        this.inNumber = inNumber;
    }

    public Long getOperId() {
        return operId;
    }

    public void setOperId(Long operId) {
        this.operId = operId;
    }

    public String getTaskOrderType() {
        return taskOrderType;
    }

    public void setTaskOrderType(String taskOrderType) {
        this.taskOrderType = taskOrderType;
    }

    public List<MdInTaskDetails> getMdInTaskDetailsList() {
        return mdInTaskDetailsList;
    }

    public void setMdInTaskDetailsList(List<MdInTaskDetails> mdInTaskDetailsList) {
        this.mdInTaskDetailsList = mdInTaskDetailsList;
    }

    public Long[] getInTaskIds() {
        return inTaskIds;
    }

    public void setInTaskIds(Long[] inTaskIds) {
        this.inTaskIds = inTaskIds;
    }

    public void setInTaskId(Long inTaskId) {
        this.inTaskId = inTaskId;
    }

    public Long getInTaskId() {
        return inTaskId;
    }

    public void setInTaskNo(String inTaskNo) {
        this.inTaskNo = inTaskNo;
    }

    public String getInTaskNo() {
        return inTaskNo;
    }

    public void setInWhSortCode(String inWhSortCode) {
        this.inWhSortCode = inWhSortCode;
    }

    public String getInWhSortCode() {
        return inWhSortCode;
    }

    public void setOperationUserId(Long operationUserId) {
        this.operationUserId = operationUserId;
    }

    public Long getOperationUserId() {
        return operationUserId;
    }

    public void setOperationDate(Date operationDate) {
        this.operationDate = operationDate;
    }

    public Date getOperationDate() {
        return operationDate;
    }

    public void setStatusCode(String statusCode) {
        this.statusCode = statusCode;
    }

    public String getStatusCode() {
        return statusCode;
    }

    public void setTaskDate(Date taskDate) {
        this.taskDate = taskDate;
    }

    public Date getTaskDate() {
        return taskDate;
    }

    public void setAssetsCategory(String assetsCategory) {
        this.assetsCategory = assetsCategory;
    }

    public String getAssetsCategory() {
        return assetsCategory;
    }

    public void setSender(String sender) {
        this.sender = sender;
    }

    public String getSender() {
        return sender;
    }

    public void setReceiver(String receiver) {
        this.receiver = receiver;
    }

    public String getReceiver() {
        return receiver;
    }

    public void setOriginalDept(String originalDept) {
        this.originalDept = originalDept;
    }

    public String getOriginalDept() {
        return originalDept;
    }

    public void setTargetDept(String targetDept) {
        this.targetDept = targetDept;
    }

    public String getTargetDept() {
        return targetDept;
    }

    public String getNickName() {
        return nickName;
    }

    public void setNickName(String nickName) {
        this.nickName = nickName;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("inTaskId", getInTaskId())
                .append("inTaskNo", getInTaskNo())
                .append("inWhSortCode", getInWhSortCode())
                .append("operationUserId", getOperationUserId())
                .append("operationDate", getOperationDate())
                .append("statusCode", getStatusCode())
                .append("taskDate", getTaskDate())
                .append("assetsCategory", getAssetsCategory())
                .append("remark", getRemark())
                .append("sender", getSender())
                .append("receiver", getReceiver())
                .append("originalDept", getOriginalDept())
                .append("targetDept", getTargetDept())
                .toString();
    }
}
